package SolrApps;

import UntilSolr.UntilSolrCloud;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.CloudSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.params.ModifiableSolrParams;

public class QuaryData {

    public static void main(String[] args){
        CloudSolrServer server = UntilSolrCloud.getCollection();
        //方法一
//        ModifiableSolrParams params = new ModifiableSolrParams();
//        params.set("q", "id:*"); // q表示查询字符串
//        params.set("start", 0); // start是开始记录数 分页用
//        params.set("rows", 3); // rows是返回记录条数 分页用
//        params.set("sort", "price desc");//sort是排序字段 字段名 排序类型
//        params.set("fl", "id,name,salary,city"); //fl是 fieldlist缩写，就是需要返回的字段列表，用逗号和空格隔开

        //方法二
        SolrQuery query = new SolrQuery();
        query.setQuery("*:*");//这里*:*表示获取所有数据，第一个*对应field，第二个对应查询的条件。
        query.addFilterQuery("id: *");
        query.setStart(0);//设置返回结果的偏移量
        query.setRows(5);//设置一次返回的数据数，可以和start匹配使用实现分页

        QueryResponse response = null;
        try {
            //response = server.query(params);
            response = server.query(query);
        } catch (SolrServerException e) {
            e.printStackTrace();
        }
        SolrDocumentList results = response.getResults();

        for(SolrDocument sd:results){
            System.out.println("id:"+sd.getFieldValue("id"));
            System.out.println("name:"+sd.getFieldValue("name"));
            System.out.println("city:"+sd.getFieldValue("city"));
            System.out.println("salary:"+sd.getFieldValue("salary"));
        }
        //都能查询到结果
    }
}
